An Introduction to QGIS: An Open-Source Alternative

Geographic Information System (GIS)

Part of the

Ecology and Evolutionary Biology Interdisciplinary Program at Texas A&M

Open Source for Open Science Workshop 2014

Instructor: Michael L. Treglia (e-mail: )

Document Version 1.01

Updated 24 July 2014

Before the Workshop

Please install QGIS and relevant plugins, listed below, prior to the workshop.

Installing QGIS

Prior to the workshop, please download and install QGIS, version 2.0 or higher (the current version at the time of writing is 2.4). Either the 32 bit or 64 bit version should work alright [Everything presented herein was tested using QGIS 2.4, 32 bit, on Windows 7 64 bit].

Note: The installation files can be somewhat large (~300mb for 32 bit Windows version) and might take some time to download and install.

For Windows users:

Download and run standalone installer, available here: http://qgis.org/en/site/forusers/download.html(QGIS Standalone Installer Version 2.4 (32 bit))

When it gives you the option, you do not need to download the sample datasets, although feel free to and use them for other tutorials or examples.

For Mac OS users:

OS 10.7 and Higher : Follow the installation instructions provided here: http://www.kyngchaos.com/software/qgis

OS 10.6.8 : Try using the latest experimental build for Mac OS 10.6.8 provided here: http://qgis.dakotacarto.com/ (scroll down to and click on "Nightly for Snow Leopard - Mac OS X 10.6").

Alternatively, try compiling with HomeBrew ( http://brew.sh/), following instructions here: https://github.com/OSGeo/homebrew-osgeo4mac. Please contact me if you have problems with these options and I will do my best to help.

For Linux Users:

Follow instructions provided here: http://qgis.org/en/site/forusers/alldownloads.html#linux.

Installing QGIS Plugins

QGIS is a powerful program, and part of its strength is the variety of free plugins that have been written for it.

Table of Contents

Installing QGIS |
--- |
Installing QGIS Plugins |
Table of Contents |
Opening Notes |
Data Sources Used |
Get to Know QGIS |
Open Shapefiles |
Open Delimited Text Layer (e.g., points based on a table with Coordinates) |
Add a Background Layer |
Open and Manipulate a Raster Layer |
Projections |
Projection of Layers and Project |
Changing Projections (CRS) |
Changing Project CRS |
Changing Vector CRS (for a Shapefile) |
Changing Raster CRS |
Geo-Processing of Data Layers and Associated Tables |
Some Basic Vector Operations |
Clipping (Remove unwanted sections of a layer, based on outlines of other Layer) |
Difference (Clip out the inner area of a polygon) |
View and Edit the Attribute Table |
Spatial Join |
Add Geometry Information to Attribute Tables |
Some Basic Raster Operations |
Calculate Slope from a DEM |
Reclassify Raster |
Raster Calculator |
Using Vector and Raster Datasets Together |
Clipping a Raster |
Compute Zonal Statistics for Polygons |
Making a Quality Map Layout |
Setting up for a Map |
Putting Everything Together |
Adding the Map of interest to the Layout |
Adding Gridlines and Coordinates |
Adding Scale Bar, North Arrow, and Legend |
Adding an Inset |
Final Formatting and Exporting the Map |
Exporting the Map |
Closing Comments |

Opening Notes

Open-source tools for research in ecology and evolutionary biology, among other fields, are constantly expanding. Herein, I provide a tutorial of QGIS ( www.qgis.org), which is capable of almost any GIS operation I've ever needed, either on its own, or using the various plugins and associated tools. QGIS installs and directly links with other programs including SAGA GIS and GRASS GIS, allowing users to take advantage of cooperation among the free and open source software developers. Furthermore, data can be exported to a variety of formats, for use in other software. For example, I typically process a great deal of spatial data imagery using QGIS, but later export it to use in R ( http://cran.us.r-project.org/) for more statistical analyses.

My goal here is to provide a basic skill-set to the new QGIS user, so they may feel comfortable navigating the program to carry out their own work, and so they can further explore its capabilities. This tutorial is by no-means comprehensive. I suggest users browse and search the QGIS documentation ( http://qgis.org/en/docs/index.html) when they are stuck, or make use of relevant support channels ( http://qgis.org/en/site/forusers/support.html).

Some brief acknowledgements: I am grateful to the QGIS community for constant development and support of the software. I also thank Dr. Michelle Lawing in the Department of Ecosystem Science and Management at Texas A&M University (TAMU) for getting me involved in, and organizing the workshop for which this material was developed. This work was supported by the Ecology and Evolutionary Biology Interdisciplinary Program at TAMU, and Dr. Toby Hibbitts, curator reptiles and amphibians at the of the Biodiversity Research and Teaching Collections at TAMU for provided data for specimens, used herein as a text-delimited data source.

Data Sources Used

The data sources used in this tutorial should be available for download in a single .zip folder, at the same URL where you accessed this document. Individual data layers and original sources are listed below. Please see the URLs for the original sources or the included metadata for individual layers for more detail. Throughout the document, I primarily refer to layers with the italicized names given below.

Text Delimited Table

Copperhead Data ֠"Brazos County A contortrix_TxCentral.csv" ֠Specimen locations for copperheads, Agkistrodon contortrix, in Brazos County, Texas, provided by the Biodiversity Research and Teaching Collections at Texas A&M University ( http://brtc.tamu.edu/). Most localities were collected in the WGS84 datum; the others are assumed to be, for this tutorial.

Vector Data (Shapefiles)

The following layers for Brazos County and the city of College Station, TX were accessed from the City of College Station GIS Department ( http://www.cstx.gov/index.aspx?page=3683).

1)_ County Boundary _ׂrazos_County_Boundary_8-20-02.shp (in /Brazos Limit Package")

2)_ City Limits_ ֠City_Limits.shp (in /City_Limit_Package)

  1. Rivers and Streams ֠Rivers_and_Streams.shp (in: /Rivers and Streams Package")

Raster Data

The raster dataset used in this tutorial is the 1 Arc-second (~30m) Digital Elevation Model from the U.S. Geological Survey

DEM ֠imgn31w097_1.img (in /DEM 1ArcSec)

Get to Know QGIS

Open QGIS on your computer using the QGIS Desktop icon in your Start Menu or Desktop.

To save the project click the "Save" icon and designate a file location. When you re-open a project, any layers that you were using should be in the same locations on your computer; if they are not, you will need to re-designate the appropriate file paths. If you transfer data and a project file to another computer, keep the files in the same locations relative to one another and the project should open without a problem. Make sure to periodically save the project as you work.

Before we get started, we will set the software to "Project on the Fly". This is described in more detail in the section on Projections, but in brief, it allows layers in different projections to be displayed in a common coordinate system. Click on the "Project"menu from the menu bar at top, and select "Project Properties". In the window that appears, select the "CRS" tab, check the box next to "Enable 'on the fly' CRS transformation" and click the "OK" button.

Open Shapefiles

Click the "Add Vector Layer" icon (Or use "Layer" menu and navigate to "Add Vector Layer")

Click the "Add Vector Layer" icon (Or use "Layer" menu and navigate to "Add Vector Layer")

**Note הo access data from ESRI Geodatabase (.gdb files), set "Source Type" to "Directory", and navigate to the .gdb file.

To view information about a layer at a specific point in space, click on the "Identify Features" icon on the tool bar, and click on the point of interest. The default setting show information about the layer highlighted in the "Layers" pane.

To view information about a layer at a specific point in space, click on the "Identify Features" icon on the tool bar, and click on the point of interest. The default setting show information about the layer highlighted in the "Layers" pane.

Open Delimited Text Layer (e.g., points based on a table with Coordinates)

Click "Add Delimited Text Layer" icon. (See example dialogue box on next page.)

Click "Add Delimited Text Layer" icon. (See example dialogue box on next page.)

Click "OK" and layer will appear in "Layers" pane. You can adjust the symbology by editing the properties as described above.

Click "OK" and layer will appear in "Layers" pane. You can adjust the symbology by editing the properties as described above.

Add a Background Layer

When we import spatial data, we often like to visualize them over some sort of background layer, such as aerial imagery, or a simple map. This allows us to identify if layers are being displayed in approximately the right location, and it can help with some preliminary interpretation of data. For this exercise, we will utilize the OpenLayers plugin.

Open and Manipulate a Raster Layer

To measure an individual pixel and make sure it is the size you expect click on the "Measure" tool from the toolbar, and select "Measure Line" from the drop-down menu.

To measure an individual pixel and make sure it is the size you expect click on the "Measure" tool from the toolbar, and select "Measure Line" from the drop-down menu.

To measure an individual pixel and make sure it is the size you expect click on the "Measure" tool from the toolbar, and select "Measure Line" from the drop-down menu.

Projections

Projection of Layers and Project

QGIS automatically reads projection information (i.e., the Coordinate Reference System [CRS]), if available, from respective layer files. For shapefiles, it relies on the ".prj" file; for raster data, it is often embedded in the file. If you load data without built-in projection information (e.g., a Delimited Text File), it assumes a geographic coordinate system (Lat/Long), and uses the World Geodetic Survey 1984 (WGS84) datum. It is always a good idea to check that the projection information is interpreted correctly by QGIS.

Earlier we set QGIS such that layers with different projections are "Projected on the Fly" for visualization ֠they are automatically transformed to be in the same coordinate space. Changing that, which will make it is easy to tell if individual layers are set to drastically different CRS. Click the Project Menu at on the menu bar at top and select Project Properties (or press CTRL+SHIFT+P). Then, uncheck the box at top for "Enable 'on the fly' CRS transformation" and click "OK". Now you can see how the layers line up to each other when using their native projections ֠click the "Zoom Full" button on the toolbar at top, and the map area will zoom out to include all layers.

Changing Projections (CRS)

For many operations it is necessary to have all layers in the same CRS; even if it is not necessary, it can help speed-up processing considerably. The DEM has elevation in meters, according the layer's metadata, and it is in a geographic projection. However, for computing some derivatives of elevation such as Slope, it is helpful to have the horizontal units the same as the units for elevation. Thus, we will work in a projection that is also defined in meters, the Albers Equal Area Projection. This projection may cause some distortion in shape, but maintains accurate area measurements. This is just a demonstration, and in doing your own work, it is important to consider how spatial distortions may manifest in different projections.

The steps for converting the CRS of raster and vector layers are somewhat different. Furthermore, when converting the CRS of raster layers, it is important to think about how resampling may cause distortion and inaccuracy. This will not be covered in depth here, but Mike Bostock provides a useful visualization of this: http://bost.ocks.org/mike/example/.

Changing Project CRS

As aforementioned, we will use the Albers Equal Area Projection, useful for dealing with the DEM. Other projections, such as Universal Transverse Mercator could also be used.

Changing Vector CRS (for a Shapefile)

This process involves creating a new shapefile with the desired CRS.

For the CRS, you can use the "Project CRS" (Or use the Browse button to navigate to the appropriate CRS if necessary).

For the CRS, you can use the "Project CRS" (Or use the Browse button to navigate to the appropriate CRS if necessary).

Click "OK" (the original layer can then be removed from the map by right clicking on it and selecting "remove", or by using the "Remove Layer" icon).

Click "OK" (the original layer can then be removed from the map by right clicking on it and selecting "remove", or by using the "Remove Layer" icon).

Now do this for the remaining shapefiles.

Changing Raster CRS

As with vector datasets, when reprojecting a raster, a new file is created and added to the project

In the Dialogue box (illustrated on the next page):

**Note ֠specific parameters for the reprojection of rasters can also be edited using the text at the bottom of the dialogue box, based on the arguments described here: http://www.gdal.org/gdalwarp.html To start editing this section, simply click the pencil icon, place the cursor in the box, and start typing.

Geo-Processing of Data Layers and Associated Tables

QGIS has a wide variety of built-in processing operations, and with the other included programs it has incredible capability and functionality, easily accessible via the Processing Toolbox. We will only cover a handful of operations here, but I suggest exploring menus, the Processing Toolbox, and plugins to find other operations that you need. In QGIS, these operations generally create a new layer rather than simply editing the original.

Some Basic Vector Operations

Clipping (Remove unwanted sections of a layer, based on outlines of other Layer)

Hypothetically, say we are working on a project that involves streams of the city of College Station, but the stream layer that we downloaded was for the entire county. Thus, we will clip the Rivers and Streams to the County Boundary.

("CS Rivers.shp").

Difference (Clip out the inner area of a polygon)

In another scenario, we may be interested in a geographic area, excluding a core area. With the data at hand, perhaps we are interested in something about County Boundary, but wish to exclude the area of College Station.

("Brazos Cty No CS.shp").

View and Edit the Attribute Table

Many times we need to look at the attribute table for a given layer, and sometimes even make some edits.

There's lots of information here that came with the layer. Some things that might be of interest for researchers include the Name and the HydroType (what type of stream/river each element is).

If you want to look at a single data entry simply select that row by clicking on the number to the left of the data, and it will become highlighted on the map. For the stream segments, they're small, so you'll need to zoom in to see it. While looking at the map, select the Rivers and Streams layer by clicking on it in the Layers pane, and then use the "Zoom to Selection" icon to focus on the selected stream segment. To zoom out to the entire map again, use the "Zoom Full" icon, or click the "Zoom Out" icon and click on the map.

To edit the table, you must first enable editing by clicking the "Toggle Editing Mode" icon in the toolbar above the table. Then you can edit text, and add/delete rows or columns using the icons at the top of the window. You can also do some table manipulations by altering the layer properties. You cannot, however, alter existing column names or data types from this menu. To do that, it is best to use the Table Manager plugin. If it is installed, click the icon, typically located on the left, along the "Layers" pane.

Spatial Join

We can use the spatial relationships among objects in our project to join tables with different information.

Let's add the name of the county that streams are located in as a field for the Rivers and Streams layer. We will use the Rivers and Streams and the County Boundary layers in this example.

Close the attribute table, make sure County Boundary is selected in the Layers pane, and open the Table Manager.

Close the attribute table, make sure County Boundary is selected in the Layers pane, and open the Table Manager.

- .Highlight the field "Name", click the "Rename" button, and change the name to something logical (e.g., CountyName). Click the "Save" button, and close the window.

With the attribute tables set up appropriately, we can do the now do the join.

Use the Vector menu to access "Data Management Tools", and then click "Join attributes by location". (Dialogue box on the next page).

Add Geometry Information to Attribute Tables

Vector datasets will sometimes come with geometry information about the layer in the attribute tables (e.g., length of lines, or perimeter and area of polygons). This is useful, although if you transform the data to a different projection, the geometry may no longer be accuate because the alternative projection is a somewhat different representation of Earth's surface. Other times, individual layers do not contain any geometry information that might be desirable.

Most of the vector layers we are using already have geometry data. For this exercise, we will first remove the geometry column for the Rivers and Streams layer and then use QGIS to add geometry information back in.

Click on the Rivers and Streams layer in the "Layers" pane to select it.

Click on the Rivers and Streams layer in the "Layers" pane to select it.

Select the "Length" field and click the "Delete" button to delete it.

Select the "Length" field and click the "Delete" button to delete it.

Some Basic Raster Operations

Both stand-alone and with plugins, QGIS has a diverse toolkit for working with raster datasets. As with the vector operations, only a handful are covered here, but I encourage you to browse through the menus, plug-ins, and documentation to find other operations you may need. Note that there are also various image processing tools that are useful for remote sensing work.

Calculate Slope from a DEM

Use the Raster menu to navigate to "Analysis" and then "DEM (Terrain models)"

Use the Raster menu to navigate to "Analysis" and then "DEM (Terrain models)"

*Note ֠As with the reprojection of rasters, the terrain model options can also be adjusted with the set of commands at the bottom following the arguments listed here: http://www.gdal.org/gdaldem.html. To enable editing, click the pencil icon, illustrated to the left.

Reclassify Raster

Many times we need to reclassify values from a raster dataset. In this example, we will change continuous data into categorical groups; this may be appropriate if we know specific tolerances of a species, and have a relevant raster layer. I find the easiest ways to reclassify a dataset are using either the GRASS or SAGA GIS utilities, accessed through the Processing Toolbox. Here, we'll use SAGA GIS ( www.saga-gis.org/).

Open the Processing Toolbox - click the Processing menu, on the menu bar at top, and select "Toolbox".

Open the Processing Toolbox - click the Processing menu, on the menu bar at top, and select "Toolbox".

Open the Processing Toolbox - click the Processing menu, on the menu bar at top, and select "Toolbox".

We will reclassify values of the DEM (elevation) to indicate that pixels are suitable for a hypothetical species (>75 m; set to 1), or not suitable (= 75 m; set to 0).

Expand the list under SAGA by clicking on the "+" next to it, then expand the list under "Grid - Tools", and double-click on "Reclassify grid values".

Fill in the table as indicated below, then put your cursor in the third column and click "Remove row", and then "OK". The lowest and highest values (0 and 150) are based on the maximum and minimum of the entire DEM, which can be viewed by clicking the "+" next to the layer in the "Layers" pane.

Fill in the table as indicated below, then put your cursor in the third column and click "Remove row", and then "OK". The lowest and highest values (0 and 150) are based on the maximum and minimum of the entire DEM, which can be viewed by clicking the "+" next to the layer in the "Layers" pane.

*Note, there are a variety of options here; those used here accomplish the task at hand; I encourage you to explore SAGA GIS, and explore what other options do in your free time.

We will now do the same thing for the Slope raster using, following the values in the lookup table below. (Low slope, 0-2Рare suitable for the hypothetical species; high slopes, >2Ь are not). Rename this new layer appropriately (e.g., Slope Reclass)

To verify that these reclassified layers are correct, you can bring the respective reclassified layer to the top, and use the "Identify Features" tool to inspect the values of each raster. Click on the icon in the toolbar, and a new pane should appear (typically on the lower left, "Identify Results"). Then click the mouse on a point, and it will by default show you the properties (e.g., value or fields) of the layer highlighted in the "Layers" pane. You can adjust the "Mode" and "View" options in the pane, to view characteristics of multiple layers at once.

Raster Calculator

Many times we need create a new raster layer that is based on a composite of other layers. For example, in the previous examples we reclassified _DEM __Albers_ and _Slope__ Albers_ rasters to identify where elevation and slope are suitable for a hypothetical species. We can combine these reclassified layers, mathematically, to identify where BOTH elevation and slope are suitable, simply by multiplying overlapping pixels from the respective layers. In this resulting raster, areas where a pixel is 0 in either raster will be 0 (unsuitable based on both layers); locations where both characteristics are suitable will be represented by values of 1.

After processing, you will see the new layer in the "Layers" pane, and you can explore it to ensure the output is as-expected.

You can use this tool for various other calculations, using the buttons provided. You can also type in the "Raster calculator expression" box at the bottom, to add numeric terms and such.

Using Vector and Raster Datasets Together

Clipping a Raster

When downloading raster layers, they are frequently available for larger areas than necessary, which can contribute to additional processing time and decrease available memory. To deal with this, we can easily clip the raster to the bounds of a vector dataset or to a set of boundaries based on coordinates.

The new layer will appear in the Layers pane and you can inspect as needed.

* This operation is effectively done using the same basic commands as for reprojection of rasters, and similarly, the parameters can be edited in the text box at the bottom based on the "gdalwarp" function.

** To fit the raster in the appropriate space as designated by the vector layer, it actually resamples the raster data and moves it slightly to fit. You can use the arguments in the gdalwarp command to select the desired resampling type.

Compute Zonal Statistics for Polygons

It is often useful to calculate metrics from a raster layer for a vector dataset, for example the mean elevation or slope of a polygon. The "Zonal Statistics" plugin is great for this, and there are other tools (e.g., in SAGA GIS) that allow additional flexibility.

Using the Zonal Statistics plugin:

Designate an prefix for the resulting columns (to help remember which raster you used) and click "OK"

Designate an prefix for the resulting columns (to help remember which raster you used) and click "OK"

You can view the result by opening the attribute table for the polygon layer; and you will see new columns representing the "count" (count of all contained pixels", the "sum" (sum of all values for the contained pixels), and the "mean" (average of all values for the contained pixels).

Using SAGA GIS:

Making a Quality Map Layout

QGIS works well for making maps, with easily customizable symbology, and a good set of tools to develop a layout for print and publication. Here, we will make a basic map of the habitat suitability raster for the city of College Station, with an inset showing where College Station is in Brazos County. We will include standard map elements including a scale bar, north arrow, legend, and coordinate grid. I encourage you to explore other options and setups for this after the workshop, or try making one with your own data. As with the other features of QGIS, I only have time to highlight a relatively small subset of map-making tools.

To get started, open the print composer by clicking on icon indicated at left. If you were to have an existing layout that you wish to access in the project, click on the icon to the right, "Composer Manager". After clicking the icon to create a new layout, you can either designate a new name or allow the program to generate one for you.

To get started, open the print composer by clicking on icon indicated at left. If you were to have an existing layout that you wish to access in the project, click on the icon to the right, "Composer Manager". After clicking the icon to create a new layout, you can either designate a new name or allow the program to generate one for you.

Setting up for a Map

Maps that you bring into the layout will be based on what you see in the main QGIS window. Let's go back to that for now and start by visualizing the layers of the City Limits, Habitat Suitability, and Rivers of College Station (from the vector clipping exercise).You can order them as you wish, but make sure you can see all elements (for the City Limits layer, you can have that on top as long as you adjust the transparency or fill so you can see the other layers, and make sure the city boundary is obvious). Manipulate the symbology and labels for these layers to your liking, so they will appear alright in a map together. See my set-up on the next page. The orange color represents areas suitable for the hypothetical species, purple represents unsuitable, and the blue lines are the rivers and streams.

Think about what types of coordinate you want to show on the borders of the map; they have to be the same as used in the Project CRS. Many people like to see the geographic coordinates, so I change mine to WGS84 for display purposes, and use projection on-the-fly. You may want to be explicit in a caption about what projection you used to conduct any analyses. After setting that, make sure to click the "Zoom Full" button to make sure the focal area takes up as much of the viewing area as possible. (You can also adjust the viewing scale using the "Scale" adjustment at the bottom of the main QGIS screen.)

Once satisfied with the layout of the main map, we are ready to start putting a final layout together.

The only thing we'll change for now is the Paper Size ֠change to "ANSI A (Letter; 8.5x11 in).

The only thing we'll change for now is the Paper Size ֠change to "ANSI A (Letter; 8.5x11 in).

Putting Everything Together

Adding the Map of interest to the Layout

In the Composition window click the "Add Map" icon, and click and drag a box for in the area you would like the main map to occupy. The view from the main QGIS window should now appear in that area.

In the Composition window click the "Add Map" icon, and click and drag a box for in the area you would like the main map to occupy. The view from the main QGIS window should now appear in that area.

Adding Gridlines and Coordinates

Expand the "Draw coordinates" section and check the respective box. Adjust settings as you see fit; the only adjustment I illustrate is changing the precision of coordinates shown.

Adding Scale Bar, North Arrow, and Legend

For the Scale Bar: click the "Add Scale Bar" icon, and click and drag a box where you want the scale bar to be placed.

For the Scale Bar: click the "Add Scale Bar" icon, and click and drag a box where you want the scale bar to be placed.

*Note: the "Item Properties" tab is dynamic, changing with the type of object you have selected.

For the North Arrow: click the "Add Image" icon, and click and drag a box where you want the north arrow placed.

For the North Arrow: click the "Add Image" icon, and click and drag a box where you want the north arrow placed.

In the "Item Properties" tab, expand the section for "Search Directories". The default path links to a directory that has available images included with QGIS. You will see a few that work as a north arrow; select one and click the "Add" button. You can rotate it if necessary, to match rotation of the map if it is not the typical north-to-the-top orientation.

In the "Item Properties" tab, expand the section for "Search Directories". The default path links to a directory that has available images included with QGIS. You will see a few that work as a north arrow; select one and click the "Add" button. You can rotate it if necessary, to match rotation of the map if it is not the typical north-to-the-top orientation.

For the Legend: Click the "Add new legend" icon, and click and drag a box where you want it to be placed. A default legend will appear in that area; the box will automatically resize to accommodate the dimensions.

For the Legend: Click the "Add new legend" icon, and click and drag a box where you want it to be placed. A default legend will appear in that area; the box will automatically resize to accommodate the dimensions.

Expand the "Legend items" section. You can add a new layer to the legend, re-arrange the order, and rename items. To change the name of an entry, click on the legend entry you wish to edit, and click the "Edit" icon and type a new name that you prefer. In the example shown below, the City Limits entry is being renamed to "College Station Boundary". For editing specific entries for grouped legend items (e.g., the legend for Habitat Suitability layer), expand the group by clicking the "+" icon next the highest level item, and select the specific item you wish to edit before clicking the "Edit" icon.

Expand the "Legend items" section. You can add a new layer to the legend, re-arrange the order, and rename items. To change the name of an entry, click on the legend entry you wish to edit, and click the "Edit" icon and type a new name that you prefer. In the example shown below, the City Limits entry is being renamed to "College Station Boundary". For editing specific entries for grouped legend items (e.g., the legend for Habitat Suitability layer), expand the group by clicking the "+" icon next the highest level item, and select the specific item you wish to edit before clicking the "Edit" icon.

Expand the "Legend items" section. You can add a new layer to the legend, re-arrange the order, and rename items. To change the name of an entry, click on the legend entry you wish to edit, and click the "Edit" icon and type a new name that you prefer. In the example shown below, the City Limits entry is being renamed to "College Station Boundary". For editing specific entries for grouped legend items (e.g., the legend for Habitat Suitability layer), expand the group by clicking the "+" icon next the highest level item, and select the specific item you wish to edit before clicking the "Edit" icon.

- .You can add and edit a box around the legend by clicking the box for, and expanding the "Frame" section.

Adding an Inset

Now, the map is starting to really look like a map, but one thing that is useful to have is an inset that shows where things are in the broader context. To create this, we need to again set up our layers as we wish them to appear in the inset. The only layers we really need here are the County Boundary and the City Limits. It is best to use a copy of the City Limits layer, as it is used on the main map, and editing the original will alter the final product when we export it. To duplicate a layer, in the "Layers" pane of the main QGIS window, select the layer you want a copy of, right click, and click "Duplicate".

Do as described earlier to create a suitable looking map with the Brazos County Boundary and City Limits layers in the main QGIS window. Below is an example setup.

Do as described earlier to create a suitable looking map with the Brazos County Boundary and City Limits layers in the main QGIS window. Below is an example setup.

In the Composition window, click the "Add new map" icon again, and draw a box where you want it to appear. You can edit it, as with the main map, using the "Item Properties" tab. Perhaps add a frame to it, to make it stand out and delineate it as a separate entity from the rest of the map. You can also add gridlines and coodinates as desired.

In the Composition window, click the "Add new map" icon again, and draw a box where you want it to appear. You can edit it, as with the main map, using the "Item Properties" tab. Perhaps add a frame to it, to make it stand out and delineate it as a separate entity from the rest of the map. You can also add gridlines and coodinates as desired.

You can add a label to this using the "Add new label" icon; select it and click and drag a box where you would like the text.

You can add a label to this using the "Add new label" icon; select it and click and drag a box where you would like the text.

Final Formatting and Exporting the Map

We are almost done creating a final, high quality map. Now you can add anything else you need. On the next page, you can see my final version; the only other element I have added is another label to serve as a title for the map. If you need to move anything around, make sure the "select/move" icon is selected, click on the focal element, and move or re-size it. You can also add shapes and arrows using the "Add ellipse" and "Add arrow" icons.

Exporting the Map

From the Composition window you can export the final product to various image formats, to an SVG file, or to a PDF file. Simply click on the respective icons from the toolbar at top (shown below, in order), designate a file name and location, and click "OK".

Closing Comments

My goal in his workshop and tutorial was to give new users a working knowledge of QGIS. Although we only had time for a handful of operations, I hope that you now have sufficient familiarity with QGIS to explore on your own, and find other functions that you may need for your work. If you continue expanding your use of QGIS, you may wish to script your work for better reproducibility and documentation. Python is a common language used for scripting in QGIS, and you can find more details on the web (e.g., http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html).

QGIS is constantly being further developed, and I suggest users periodically check for updates to the software, as new tools are often implemented, and processing and data management protocols are often improved. Since I first started using QGIS, the software has become much more user-friendly, tools have become much more expansive, and bugs have been fixed. Keep up with it, and I think you'll find it to be a suitable alternative, that is even superior in some ways, to expensive, paid GIS software.

Thank you for your attention. Feel free to contact me with further questions.